package org.linlinjava.litemall.db.domain;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import org.linlinjava.litemall.db.handler.ListIntegerTypeHandler;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.Delayed;
import java.util.concurrent.TimeUnit;

/**
 * litemall秩序
 *
 * @author yliyun
 * @date 2022/09/15
 */
@Data
@TableName(value = "litemall_order",autoResultMap = true)
public class LumiereOrder{
    /**
     * id
     */
    @TableId(type = IdType.AUTO)
    private Integer id;

    /**
     * 用户id
     */
    private Integer userId;

    /**
     * 商店id
     */
    private Integer shopId;

    /**
     * 订单sn
     */
    private String orderSn;

    /**
     * 商品ids
     */
    @TableField(typeHandler = ListIntegerTypeHandler.class)
    private List<Integer> goodsIds;

    /**
     * 套餐ids
     */
    @TableField(typeHandler = ListIntegerTypeHandler.class)
    private List<Integer> packageIds;

    /**
     * 序列号
     */
    private Integer serialNo;

    /**
     * 设备没有
     */
    private String deviceNo;

    /**
     * 订单状态
     */
    private Short orderStatus;

    /**
     * 退款状态
     */
    private Byte refundStatus;

    /**
     * 评估状况
     */
    private Byte evaluationStatus;

    /**
     * 了状态
     */
    private Byte madeStatus;

    /**
     * 订单类型
     */
    private Byte orderType;

    /**
     * 原始sn
     */
    private String originalSn;

    /**
     * 是重复
     */
    private Boolean isRepeat;

    /**
     * 是退款
     */
    private Boolean isRefund;

    /**
     * 收货人
     */
    private String consignee;

    /**
     * 移动
     */
    private String mobile;

    /**
     * 地址
     */
    private String address;

    /**
     * 备注消息
     */
    private String message;

    /**
     * 商品价格
     */
    private BigDecimal goodsPrice;

    /**
     * 运费价格
     */
    private BigDecimal freightPrice;

    /**
     * 优惠价格
     */
    private BigDecimal couponPrice;

    /**
     * 整体价格
     */
    private BigDecimal integralPrice;

    /**
     * 团购价格
     */
    private BigDecimal grouponPrice;

    /**
     * 订单价格
     */
    private BigDecimal orderPrice;

    /**
     * 税价格
     */
    private BigDecimal taxPrice;

    /**
     * 实际价格
     */
    private BigDecimal actualPrice;

    /**
     * 货币
     */
    private String currency;

    /**
     * 支付类型
     */
    private Byte payType;

    /**
     * 支付id
     */
    private String payId;

    /**
     * 贸易没有
     */
    private String outTradeNo;

    /**
     * 事务处理标识
     */
    private String transationId;

    /**
     * 支付时间
     */
    //@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "UTC")
    private LocalDateTime payTime;

    /**
     * 订单来源
     */
    private Byte orderSource;

    /**
     * 船状态
     */
    private Byte shipStatus;

    /**
     * 船sn
     */
    private String shipSn;

    /**
     * 航道
     */
    private String shipChannel;

    /**
     * 船时间
     */
    private LocalDateTime shipTime;

    /**
     * 船话
     */
    private String shipRemark;

    /**
     * 收到开始时间
     */
    private LocalDateTime receiptStartTime;

    /**
     * 收到结束时间
     */
    private LocalDateTime receiptEndTime;

    /**
     * 外部id
     */
    private Integer externalId;

    /**
     * 确认时间
     */
    private LocalDateTime confirmTime;

    /**
     * 评论
     */
    private Short comments;

    /**
     * 描述
     */
    private String description;

    /**
     * 工作单
     */
    private Boolean shopOrder;

    /**
     * 结束时间
     */
    private LocalDateTime endTime;

    /**
     * 结束一年
     */
    private Integer endYear;

    /**
     * 月结束
     */
    private Integer endMonth;

    /**
     * 添加时间
     */
    @TableField(fill = FieldFill.INSERT) // 插入 和 更新时 自动填充
    private LocalDateTime addTime;


    @TableField(fill = FieldFill.UPDATE) // 插入 和 更新时 自动填充
    private LocalDateTime updateTime;

    /**
     * 删除
     */
    private Boolean deleted;

    /**
     * 售后地位
     */
    private Boolean aftersaleStatus;

    /**
     * 点
     */
    private BigDecimal points;

    /**
     * 例id
     */
    private Integer exId;

    /**
     * 付费会员id
     */
    private Integer payMemberId;

    /**
     * 结合优惠券id
     */
    private Integer bindCouponId;

    /**
     * serinal数量
     */
    private Integer serinalNumber;

    /**
     * 成员身份
     */
    private Integer memberId;

    /**
     * 会员价格
     */
    private BigDecimal memberPrice;

    private BigDecimal gstPrice;
    private BigDecimal pstPrice;
    private BigDecimal hstPrice;

    private BigDecimal memberPer;

    private String wxMemberSource;

    private String employeeId;


}
